Explore Prosperloandata
背景:互联网技术的发展,为金融创新提供了条件,并未不断涌现的金融创新在实践中的应用于推广奠定了坚实基础.其中,网络借贷就是资金借贷活动借助互联网平台而实现的一种去中介化的模式创新.作为网贷平台的主要形式,P2P平台通过直接撮合借贷双方,改变了传统商业银行作为资金融通中介的借贷模式,近年来发展迅速。Prosper是美国的一家P2P(个人对个人)在线借贷平台网站,世界排名2万左右。网站撮合了一些有闲钱的人和一些急于用钱的人。本项目选取了该公司自2006年至2014年总共11W的贷款数据,试图分析Prosper贷款人质量,贷款资金价格界定规则等问题.
========================================================
## 'data.frame': 113937 obs. of 81 variables:
## $ ListingKey : Factor w/ 113066 levels "00003546482094282EF90E5",..: 7180 7193 6647 6669 6686 6689 6699 6706 6687 6687 ...
## $ ListingNumber : int 193129 1209647 81716 658116 909464 1074836 750899 768193 1023355 1023355 ...
## $ ListingCreationDate : Factor w/ 113064 levels "2005-11-09 20:44:28.847000000",..: 14184 111894 6429 64760 85967 100310 72556 74019 97834 97834 ...
## $ CreditGrade : Factor w/ 9 levels "","A","AA","B",..: 5 1 8 1 1 1 1 1 1 1 ...
## $ Term : int 36 36 36 36 36 60 36 36 36 36 ...
## $ LoanStatus : Factor w/ 12 levels "Cancelled","Chargedoff",..: 3 4 3 4 4 4 4 4 4 4 ...
## $ ClosedDate : Factor w/ 2803 levels "","2005-11-25 00:00:00",..: 1138 1 1263 1 1 1 1 1 1 1 ...
## $ BorrowerAPR : num 0.165 0.12 0.283 0.125 0.246 ...
## $ BorrowerRate : num 0.158 0.092 0.275 0.0974 0.2085 ...
## $ LenderYield : num 0.138 0.082 0.24 0.0874 0.1985 ...
## $ EstimatedEffectiveYield : num NA 0.0796 NA 0.0849 0.1832 ...
## $ EstimatedLoss : num NA 0.0249 NA 0.0249 0.0925 ...
## $ EstimatedReturn : num NA 0.0547 NA 0.06 0.0907 ...
## $ ProsperRating..numeric. : int NA 6 NA 6 3 5 2 4 7 7 ...
## $ ProsperRating..Alpha. : Factor w/ 8 levels "","A","AA","B",..: 1 2 1 2 6 4 7 5 3 3 ...
## $ ProsperScore : num NA 7 NA 9 4 10 2 4 9 11 ...
## $ ListingCategory..numeric. : int 0 2 0 16 2 1 1 2 7 7 ...
## $ BorrowerState : Factor w/ 52 levels "","AK","AL","AR",..: 7 7 12 12 25 34 18 6 16 16 ...
## $ Occupation : Factor w/ 68 levels "","Accountant/CPA",..: 37 43 37 52 21 43 50 29 24 24 ...
## $ EmploymentStatus : Factor w/ 9 levels "","Employed",..: 9 2 4 2 2 2 2 2 2 2 ...
## $ EmploymentStatusDuration : int 2 44 NA 113 44 82 172 103 269 269 ...
## $ IsBorrowerHomeowner : Factor w/ 2 levels "False","True": 2 1 1 2 2 2 1 1 2 2 ...
## $ CurrentlyInGroup : Factor w/ 2 levels "False","True": 2 1 2 1 1 1 1 1 1 1 ...
## $ GroupKey : Factor w/ 707 levels "","00343376901312423168731",..: 1 1 335 1 1 1 1 1 1 1 ...
## $ DateCreditPulled : Factor w/ 112992 levels "2005-11-09 00:30:04.487000000",..: 14347 111883 6446 64724 85857 100382 72500 73937 97888 97888 ...
## $ CreditScoreRangeLower : int 640 680 480 800 680 740 680 700 820 820 ...
## $ CreditScoreRangeUpper : int 659 699 499 819 699 759 699 719 839 839 ...
## $ FirstRecordedCreditLine : Factor w/ 11586 levels "","1947-08-24 00:00:00",..: 8639 6617 8927 2247 9498 497 8265 7685 5543 5543 ...
## $ CurrentCreditLines : int 5 14 NA 5 19 21 10 6 17 17 ...
## $ OpenCreditLines : int 4 14 NA 5 19 17 7 6 16 16 ...
## $ TotalCreditLinespast7years : int 12 29 3 29 49 49 20 10 32 32 ...
## $ OpenRevolvingAccounts : int 1 13 0 7 6 13 6 5 12 12 ...
## $ OpenRevolvingMonthlyPayment : num 24 389 0 115 220 1410 214 101 219 219 ...
## $ InquiriesLast6Months : int 3 3 0 0 1 0 0 3 1 1 ...
## $ TotalInquiries : num 3 5 1 1 9 2 0 16 6 6 ...
## $ CurrentDelinquencies : int 2 0 1 4 0 0 0 0 0 0 ...
## $ AmountDelinquent : num 472 0 NA 10056 0 ...
## $ DelinquenciesLast7Years : int 4 0 0 14 0 0 0 0 0 0 ...
## $ PublicRecordsLast10Years : int 0 1 0 0 0 0 0 1 0 0 ...
## $ PublicRecordsLast12Months : int 0 0 NA 0 0 0 0 0 0 0 ...
## $ RevolvingCreditBalance : num 0 3989 NA 1444 6193 ...
## $ BankcardUtilization : num 0 0.21 NA 0.04 0.81 0.39 0.72 0.13 0.11 0.11 ...
## $ AvailableBankcardCredit : num 1500 10266 NA 30754 695 ...
## $ TotalTrades : num 11 29 NA 26 39 47 16 10 29 29 ...
## $ TradesNeverDelinquent..percentage. : num 0.81 1 NA 0.76 0.95 1 0.68 0.8 1 1 ...
## $ TradesOpenedLast6Months : num 0 2 NA 0 2 0 0 0 1 1 ...
## $ DebtToIncomeRatio : num 0.17 0.18 0.06 0.15 0.26 0.36 0.27 0.24 0.25 0.25 ...
## $ IncomeRange : Factor w/ 8 levels "$0","$1-24,999",..: 4 5 7 4 3 3 4 4 4 4 ...
## $ IncomeVerifiable : Factor w/ 2 levels "False","True": 2 2 2 2 2 2 2 2 2 2 ...
## $ StatedMonthlyIncome : num 3083 6125 2083 2875 9583 ...
## $ LoanKey : Factor w/ 113066 levels "00003683605746079487FF7",..: 100337 69837 46303 70776 71387 86505 91250 5425 908 908 ...
## $ TotalProsperLoans : int NA NA NA NA 1 NA NA NA NA NA ...
## $ TotalProsperPaymentsBilled : int NA NA NA NA 11 NA NA NA NA NA ...
## $ OnTimeProsperPayments : int NA NA NA NA 11 NA NA NA NA NA ...
## $ ProsperPaymentsLessThanOneMonthLate: int NA NA NA NA 0 NA NA NA NA NA ...
## $ ProsperPaymentsOneMonthPlusLate : int NA NA NA NA 0 NA NA NA NA NA ...
## $ ProsperPrincipalBorrowed : num NA NA NA NA 11000 NA NA NA NA NA ...
## $ ProsperPrincipalOutstanding : num NA NA NA NA 9948 ...
## $ ScorexChangeAtTimeOfListing : int NA NA NA NA NA NA NA NA NA NA ...
## $ LoanCurrentDaysDelinquent : int 0 0 0 0 0 0 0 0 0 0 ...
## $ LoanFirstDefaultedCycleNumber : int NA NA NA NA NA NA NA NA NA NA ...
## $ LoanMonthsSinceOrigination : int 78 0 86 16 6 3 11 10 3 3 ...
## $ LoanNumber : int 19141 134815 6466 77296 102670 123257 88353 90051 121268 121268 ...
## $ LoanOriginalAmount : int 9425 10000 3001 10000 15000 15000 3000 10000 10000 10000 ...
## $ LoanOriginationDate : Factor w/ 1873 levels "2005-11-15 00:00:00",..: 426 1866 260 1535 1757 1821 1649 1666 1813 1813 ...
## $ LoanOriginationQuarter : Factor w/ 33 levels "Q1 2006","Q1 2007",..: 18 8 2 32 24 33 16 16 33 33 ...
## $ MemberKey : Factor w/ 90831 levels "00003397697413387CAF966",..: 11071 10302 33781 54939 19465 48037 60448 40951 26129 26129 ...
## $ MonthlyLoanPayment : num 330 319 123 321 564 ...
## $ LP_CustomerPayments : num 11396 0 4187 5143 2820 ...
## $ LP_CustomerPrincipalPayments : num 9425 0 3001 4091 1563 ...
## $ LP_InterestandFees : num 1971 0 1186 1052 1257 ...
## $ LP_ServiceFees : num -133.2 0 -24.2 -108 -60.3 ...
## $ LP_CollectionFees : num 0 0 0 0 0 0 0 0 0 0 ...
## $ LP_GrossPrincipalLoss : num 0 0 0 0 0 0 0 0 0 0 ...
## $ LP_NetPrincipalLoss : num 0 0 0 0 0 0 0 0 0 0 ...
## $ LP_NonPrincipalRecoverypayments : num 0 0 0 0 0 0 0 0 0 0 ...
## $ PercentFunded : num 1 1 1 1 1 1 1 1 1 1 ...
## $ Recommendations : int 0 0 0 0 0 0 0 0 0 0 ...
## $ InvestmentFromFriendsCount : int 0 0 0 0 0 0 0 0 0 0 ...
## $ InvestmentFromFriendsAmount : num 0 0 0 0 0 0 0 0 0 0 ...
## $ Investors : int 258 1 41 158 20 1 1 1 1 1 ...
从图中可以看出,CA地区的贷款人最多,CA是California的简称,查资料得知,prosper的总部位于旧金山,那么加利福尼亚的客户最多这一点是有实际意义的。
从图中看出,other数量最多,说明登记借款人资料的时候,很多人没有真实填写,而是选择了other选项。除了other之外,最多的是professional。
从债务收入比的直方图中可以看出,图形呈右偏态,大部分贷款人的债务收入比在0.5之下,是有能力偿还债务的。
从图中可以看出,借款期限在36个月的情况最多。
从图中可以看出,借款人在借款时选择的类型最多的是1,1代表债务合并。
从图中可以看出,大部分借款人信用分一般在700左右。2009年之后根据信用评级(AA最高,HR最低),更偏向于正态分布,猜测于数据量的增大有关。
从图中可以看出,除了缺失了近2w条年收入数据之外,年收入在$25000 - $75000之间的借款人最多。
从图中可以看出,大部人贷款人信用卡的使用额度占信用卡额度比例都是比较高的,甚至有些超过了1,也就是说花费还超出了信用卡本来的额度。
从图中可以看出,大部分贷款利率在0.1~0.2范围内。
总结: 1、从单变量绘图中,我们可以探究以下问题。贷款人一般是什么地区/职业的?他们的信用评级如何?他们的年收入一般是多少?使用信用卡的情况如何? 2、会用到的数据特征有CreditGrade、IncomeRange、DebtToIncomeRatio、Occupation等; 3、因为BankcardUtilization的数据分布比较分散,所以创建新的变量BankCardUse将原有数据划分为几个 等级;CreditScoreRangeLower和CreditScoreRangeUpper代表用户信用评分的区间,取平均值CreditScore 在本报告中表示用户的信用得分;数据集中以2009-07-01作为分界线,CreditGrade表示09年之前的信用 评级,ProsperRating (Alpha)表示09年之后的信用评级,所以创建了新变量Phase划分; 4为了更好的看出图表中表达的信息,在绘图时去除了部分NA值。对评级做了排序(AA最高,HR最低),从最低到最高显示。
##
## Pearson's product-moment correlation
##
## data: loandata$CreditScore and loandata$BorrowerRate
## t = -175.17, df = 113340, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.4661358 -0.4569730
## sample estimates:
## cor
## -0.4615667
从图中可以看出,CreditScore和BorrowerRate两个变量之间呈现较明显的负相关关系,相关系数是-0.46。 评分较高的人以较低的借款利率借到贷款。
##
## Pearson's product-moment correlation
##
## data: loandata$LoanOriginalAmount and loandata$BorrowerRate
## t = -117.58, df = 113940, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.3341283 -0.3237719
## sample estimates:
## cor
## -0.3289599
从图中可以看出,贷款金额和贷款利率之间呈现出弱负相关关系,相关系数是-0.33。
从图中可以看出,贷款金额较高的是1债务合并和8婴儿和领养。
从图中可以看出,获批贷款的金额随着年收入范围的增长而增长。
从图中可以看出,更高的贷款金额将在更长的期限内偿还。
从图中可以观察到,还款期限和借款利率之间没有太大的相关性。
从图中观察不到还款期限和信用评分之间有太多联系。
从双变量分析中可以观察到借款人信用评分和借款利率之间有一定的负相关关系;贷款较高的分类一般是债务合并和婴儿(和领养);年收入更高的贷款者有更大机会拿到更多的贷款金额,因为年收入更高的借款者也具有更高的偿还能力,因此平台愿意借出更多资金是可以理解的。
从图中可以观察到,借款利率随着信用评分的升高而降低,并且在09年之前,prosper还会借钱给评分为600分一下的客户,在2009年之后,600分以下的用户几乎没有了,似乎prosper对于贷款条件做出了修改。
从图中可以观察到,在2009年之后,各信用等级平均值的连线斜率更大,表明不同信用等级的借款利率梯度变大,应该是在2009年7月1之后prosper对借款人的信用评级更加重视,评级决定借款利率的趋势更加明显,从另一方面说明了prosper的借贷模型发生了变化。
从图中可以观察到,左上角那些是评分较低的,以较高利率获得较低贷款金额的用户。红色部分代表信用分较高的用户,以较低的贷款利率获得较高的贷款额度。(为了获得更好的可视化,仅绘制对应于信用分大于第二四分位数的用户。)
##
## Calls:
## m1: lm(formula = I(BorrowerRate) ~ I(CreditScore), data = subset(loandata,
## LoanOriginationDate < "2009-07-01" & !is.na(CreditGrade) &
## !is.na(LoanOriginalAmount) & !is.na(BankCardUse) & !is.na(CreditScore)))
## m2: lm(formula = I(BorrowerRate) ~ I(CreditScore) + CreditGrade,
## data = subset(loandata, LoanOriginationDate < "2009-07-01" &
## !is.na(CreditGrade) & !is.na(LoanOriginalAmount) & !is.na(BankCardUse) &
## !is.na(CreditScore)))
## m3: lm(formula = I(BorrowerRate) ~ I(CreditScore) + CreditGrade +
## LoanOriginalAmount, data = subset(loandata, LoanOriginationDate <
## "2009-07-01" & !is.na(CreditGrade) & !is.na(LoanOriginalAmount) &
## !is.na(BankCardUse) & !is.na(CreditScore)))
## m4: lm(formula = I(BorrowerRate) ~ I(CreditScore) + CreditGrade +
## LoanOriginalAmount + BankCardUse, data = subset(loandata,
## LoanOriginationDate < "2009-07-01" & !is.na(CreditGrade) &
## !is.na(LoanOriginalAmount) & !is.na(BankCardUse) & !is.na(CreditScore)))
##
## =================================================================================================
## m1 m2 m3 m4
## -------------------------------------------------------------------------------------------------
## (Intercept) 0.644*** 0.332*** 0.306*** 0.305***
## (0.003) (0.018) (0.018) (0.018)
## I(CreditScore) -0.001*** -0.000*** -0.000*** -0.000***
## (0.000) (0.000) (0.000) (0.000)
## CreditGrade: .L -0.110*** -0.131*** -0.128***
## (0.006) (0.006) (0.006)
## CreditGrade: .Q -0.000 0.000 -0.001
## (0.001) (0.001) (0.001)
## CreditGrade: .C 0.014*** 0.017*** 0.017***
## (0.001) (0.001) (0.001)
## CreditGrade: ^4 -0.016*** -0.015*** -0.015***
## (0.001) (0.001) (0.001)
## CreditGrade: ^5 0.011*** 0.011*** 0.010***
## (0.001) (0.001) (0.001)
## CreditGrade: ^6 -0.002** -0.003*** -0.003***
## (0.001) (0.001) (0.001)
## LoanOriginalAmount 0.000*** 0.000***
## (0.000) (0.000)
## BankCardUse: Medium Use/Heavy Use -0.002
## (0.001)
## BankCardUse: Mild Use/Heavy Use 0.001
## (0.001)
## BankCardUse: Super Use/Heavy Use 0.012***
## (0.002)
## -------------------------------------------------------------------------------------------------
## R-squared 0.471 0.490 0.515 0.516
## adj. R-squared 0.471 0.490 0.515 0.516
## sigma 0.055 0.054 0.053 0.053
## F 19036.418 2929.895 2830.127 2071.355
## p 0.000 0.000 0.000 0.000
## Log-likelihood 31472.470 31856.324 32386.919 32422.560
## Deviance 65.530 63.215 60.150 59.949
## AIC -62938.939 -63694.648 -64753.839 -64819.120
## BIC -62915.033 -63622.930 -64674.151 -64715.526
## N 21349 21349 21349 21349
## =================================================================================================
##
## Calls:
## m5: lm(formula = I(BorrowerRate) ~ I(CreditScore), data = subset(loandata,
## LoanOriginationDate > "2009-07-01" & !is.na(ProsperRating..Alpha.) &
## !is.na(LoanOriginalAmount) & !is.na(BankCardUse) & !is.na(CreditScore)))
## m6: lm(formula = I(BorrowerRate) ~ I(CreditScore) + ProsperRating..Alpha.,
## data = subset(loandata, LoanOriginationDate > "2009-07-01" &
## !is.na(ProsperRating..Alpha.) & !is.na(LoanOriginalAmount) &
## !is.na(BankCardUse) & !is.na(CreditScore)))
## m7: lm(formula = I(BorrowerRate) ~ I(CreditScore) + ProsperRating..Alpha. +
## LoanOriginalAmount, data = subset(loandata, LoanOriginationDate >
## "2009-07-01" & !is.na(ProsperRating..Alpha.) & !is.na(LoanOriginalAmount) &
## !is.na(BankCardUse) & !is.na(CreditScore)))
## m8: lm(formula = I(BorrowerRate) ~ I(CreditScore) + ProsperRating..Alpha. +
## LoanOriginalAmount + BankCardUse, data = subset(loandata,
## LoanOriginationDate > "2009-07-01" & !is.na(ProsperRating..Alpha.) &
## !is.na(LoanOriginalAmount) & !is.na(BankCardUse) & !is.na(CreditScore)))
##
## =====================================================================================================
## m5 m6 m7 m8
## -----------------------------------------------------------------------------------------------------
## (Intercept) 0.767*** 0.174*** 0.174*** 0.176***
## (0.003) (0.001) (0.001) (0.001)
## I(CreditScore) -0.001*** 0.000*** 0.000*** 0.000***
## (0.000) (0.000) (0.000) (0.000)
## ProsperRating..Alpha.: .L -0.224*** -0.224*** -0.224***
## (0.000) (0.000) (0.000)
## ProsperRating..Alpha.: .Q -0.001*** -0.001*** -0.001***
## (0.000) (0.000) (0.000)
## ProsperRating..Alpha.: .C 0.014*** 0.014*** 0.014***
## (0.000) (0.000) (0.000)
## ProsperRating..Alpha.: ^4 -0.007*** -0.007*** -0.007***
## (0.000) (0.000) (0.000)
## ProsperRating..Alpha.: ^5 0.003*** 0.003*** 0.003***
## (0.000) (0.000) (0.000)
## ProsperRating..Alpha.: ^6 0.003*** 0.003*** 0.003***
## (0.000) (0.000) (0.000)
## LoanOriginalAmount 0.000 0.000*
## (0.000) (0.000)
## BankCardUse: Medium Use/Heavy Use 0.000*
## (0.000)
## BankCardUse: Mild Use/Heavy Use 0.002***
## (0.000)
## BankCardUse: Super Use/Heavy Use 0.003***
## (0.001)
## -----------------------------------------------------------------------------------------------------
## R-squared 0.259 0.914 0.914 0.914
## adj. R-squared 0.259 0.914 0.914 0.914
## sigma 0.064 0.022 0.022 0.022
## F 29620.184 129092.701 112957.562 82229.706
## p 0.000 0.000 0.000 0.000
## Log-likelihood 112513.212 203981.779 203982.734 204021.270
## Deviance 350.318 40.565 40.564 40.528
## AIC -225020.425 -407945.559 -407945.468 -408016.539
## BIC -224992.379 -407861.421 -407851.981 -407895.006
## N 84853 84853 84853 84853
## =====================================================================================================
观察输出数据表,从R2出发,总体来看,2009年之后的R2(0.9)是明显大于2009年之前的(0.5),说明总体而言,prosper更加看中了几个信用评级的评分,从具体指标来看,prosper降低了对信用评分(creditscore)的比重,对信用评级,贷款金额和信用卡的使用的比重上升.
这一部分观察到,在2009年7月1日之后,prosper不再对信用分低于六百分以下的人发放贷款;对于不同信用评级的用户,借款利率有调整;对于信用分较高的用户,收取较低的借款利率。从这些观察可以推测出,在 2009年7月1日之后,prosper应该对借款条件(模型)实施了一定程度的修改。
##
## Pearson's product-moment correlation
##
## data: loandata$CreditScore and loandata$BorrowerRate
## t = -175.17, df = 113340, p-value < 2.2e-16
## alternative hypothesis: true correlation is not equal to 0
## 95 percent confidence interval:
## -0.4661358 -0.4569730
## sample estimates:
## cor
## -0.4615667
绘制信用评分CreditScore和借款利率BorrowerRate的可视化图形观察到,随着信用评分的升高,借款汇率呈现下降的趋势。猜测信用评分是影响借款利率的其中一个重要指标。
因为信用评级划分为2009年7月1日之前和2009年7月1日之后,所以将这个时间段作为一个节点,分析信用得分和借款利率的关系,发现在09年7月1日之前prosper还有借款给信用分低于600分以下的用户的记录,可是在之后就没有了,猜测是prosper对借款的条件做出了修改,不再借款给信用分低于600分的人。
在2009年7月1日之前的信用评级是在CreditGrade列记录的,之后是在ProsperRating(Alpha)记录的,从可视化图标中可以观察到,不同评级的借款利率均值连线斜率增大,说明不同信用评级的借款利率差距变的更加明显,随着信用等级升高,借款利率降低了。由此推测信用评级也是影响prosper借款利率的其中一个重要因素。
该数据集有近114,000笔贷款,变量较多,此分析中最耗时的阶段就是选取合适的变量进行分析。因为数据量较多,集中在一起绘图,可能不太容易观察到其中的关系,因此在本项目中,我尝试了将数据分段的分析方法,从而达到便于观察的目的。分析之前,猜测借款利率和还款期限之间是有一定的关系的,因为依据我们平时接触到信用卡分期付款的模式,一般借款时间越长,利率是相对偏低的,可是在进行双变量分析时,并没有发现二者之间有明显的相关性。猜测还款期限和信用评分会有一点关联,但是从可视化图表中也是没有发现明显相关性,也许还款期限主要还是和用户自身的需求有关。但是在本分析中,确实验证了信用评分,信用评级和借款利率之间有比较大的相关性,从回归模型中也说明了这一点。不足之处在于,本项目只选取了部分变量进行分析,没有对更多指标进行探究;只用线性回归模型局限性较大,待学习了聚类,随机森林的算法再来做这个数据,用其制作评分卡模型,来验证模型的准确性。